package com.rc.saas.tenant.model.elec;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rc.saas.tenant.base.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Date;

@ExcelIgnoreUnannotated
public class ElecStation extends BaseModel {
    @ExcelIgnore
    private Long elecStationId;
    @ExcelIgnore
    private String tenantCode;
    @ExcelIgnore
    private String tenantOperatorCode;
    @ExcelIgnore
    private String hlhtOperatorId;
    @ExcelIgnore
    private String hlhtStationNo;
    @ExcelProperty(value = "站点编号",index = 0)
    private String stationNo;
    @ExcelProperty(value = "站点名称",index = 1)
    private String stationName;
    @ExcelIgnore
    private Integer stationType;
    @ExcelIgnore
    private Integer stationStar;

    /**
     * 站点备注
     */
    @ExcelProperty(value = "桩群备注",index = 11)
    private String stationRemark;
    @ExcelIgnore
    private String countryCode;
    @ExcelIgnore
    private String provinceId;
    @ExcelIgnore
    private String cityId;
    @ExcelIgnore
    private String areaId;
    @ExcelIgnore
    private String address;
    @ExcelProperty(value = "站点类型",index = 2,converter = ElecBizTypeConverter.class)
    private String bizType;
    @ExcelIgnore
    private String Is24h;
    @ExcelIgnore
    private String bizStartTime;
    @ExcelIgnore
    private String bizEndTime;
    @ExcelIgnore
    private String elecType;
    @ExcelIgnore
    private String elecServerDomain;
    @ExcelIgnore
    private Integer elecServerSpliter;
    @ExcelIgnore
    private BigDecimal longitude;
    @ExcelIgnore
    private BigDecimal latitude;
    @ExcelIgnore
    private BigDecimal parkingPrice;
    @ExcelIgnore
    private String hint;
    @ExcelIgnore
    private String wchint;
    @ExcelIgnore
    private String stationContract;
    @ExcelIgnore
    private String servicePhone;
    @ExcelIgnore
    private String isFreeParking;
    @ExcelIgnore
    private String isSpecialParking;
    @ExcelIgnore
    private String parkingRemark;
    @ExcelIgnore
    private String stationImg1;
    @ExcelIgnore
    private String stationImg2;
    @ExcelIgnore
    private String stationImg3;
    @ExcelIgnore
    private String stationImg4;
    @ExcelIgnore
    private String stationImg5;
    @ExcelIgnore
    private String stationSource;
    @ExcelIgnore
    private String proxyType;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private Date invoiceProxyTime;
    @ExcelIgnore
    private String invoiceProxyTenantCode;
    @ExcelIgnore
    private String showPlaceType;
    @ExcelIgnore
    private String showPlaceTag;
    @ExcelIgnore
    private String operateStatus;

    @ExcelProperty(value = "站点状态",index = 6,converter = ElecStationStausConverter.class)
    private String stationStaus;
    @ExcelIgnore
    private Integer sort;
    @ExcelIgnore
    private Long tenantCompanyId;
    @ExcelIgnore
    private String labelIds;
    @ExcelIgnore
    private Long operatorId;
    @ExcelIgnore
    private Long printerId;
    @ExcelIgnore
    private String hlhtStationPriceVersion;
    @ExcelIgnore
    private Integer limitSoc;
    @ExcelIgnore
    private Integer limitBatteryTemp;
    @ExcelIgnore
    private String createdBy;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private Date createdTime;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "投运时间",index = 10)
    private Date operateStartTime;
    @ExcelIgnore
    private String lastUpdatedBy;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private Date lastUpdatedTime;

    /**
     * 新增的传参字段
     */
    @ExcelIgnore
    private String provinceName;
    @ExcelIgnore
    private String cityName;
    @ExcelIgnore
    private String areaName;
    @ExcelIgnore
    private String companyName;
    @ExcelProperty(value = "标签名称",index = 3)
    private String labelName;
    @ExcelProperty(value = "所属加盟商",index = 4)
    private String operatorName;
    @ExcelProperty(value = "加盟商类型",index = 5,converter = ElecBizTypeConverter.class)
    private String operatorType;
    @ExcelIgnore
    private String tenantName;
    //互联互通运营商名称
    @ExcelIgnore
    private String hlhtOperatorName;
    @ExcelIgnore
    private Integer kwF;//7kw
    //@ExcelProperty("14kw")
    //private Integer kwH;//14kw
    @ExcelIgnore
    private Integer kwA;//30kw
    @ExcelIgnore
    private Integer kwB;//45kw
    @ExcelIgnore
    private Integer kwC;//60kw
    @ExcelIgnore
    private Integer kwG;//90kw
    @ExcelIgnore
    private Integer kwD;//120kw
    @ExcelIgnore
    private Integer kwE;//180kw

    /**
     * 打印时桩的数量
     */
    @ExcelProperty(value = "充电桩数量",index = 8)
    private Integer totalPileNum;
    @ExcelIgnore
    private Integer totalPower;

    @ExcelProperty(value = "充电桩枪数量",index = 9)
    private Integer totalGunNum;
    @ExcelIgnore
    private Integer stationTypeString;
    /**
     * 0:是 1:否
     */
    @ExcelIgnore
    private String select;
    @ExcelIgnore
    private String ownShortName; //站点对应运营商的简称
    @ExcelIgnore
    private String ownId;   //站点对应的运营商 ，互联折扣时会不一致
    @ExcelIgnore
    private String stationFlag;
    @ExcelIgnore
    private String occupyStatus;
    @ExcelIgnore
    private Integer occupyFree;
    @ExcelIgnore
    private BigDecimal occupyPrice;
    @ExcelProperty(value = "充电类型(快/慢)",index = 7)
    private String quickOrSlow;//快充与慢充类型

    public String getQuickOrSlow() {
        return quickOrSlow;
    }

    public void setQuickOrSlow(String quickOrSlow) {
        this.quickOrSlow = quickOrSlow;
    }

    public String getLabelIds() {
        return labelIds;
    }

    public void setLabelIds(String labelIds) {
        this.labelIds = labelIds;
    }

    public String getOccupyStatus() {
        return occupyStatus;
    }

    public void setOccupyStatus(String occupyStatus) {
        this.occupyStatus = occupyStatus;
    }

    public Integer getOccupyFree() {
        return occupyFree;
    }

    public void setOccupyFree(Integer occupyFree) {
        this.occupyFree = occupyFree;
    }

    public BigDecimal getOccupyPrice() {
        return occupyPrice;
    }

    public void setOccupyPrice(BigDecimal occupyPrice) {
        this.occupyPrice = occupyPrice;
    }

    public String getStationFlag() {
        return stationFlag;
    }

    public void setStationFlag(String stationFlag) {
        this.stationFlag = stationFlag;
    }


    public Long getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }

    public Integer getLimitBatteryTemp() {
        return limitBatteryTemp;
    }

    public void setLimitBatteryTemp(Integer limitBatteryTemp) {
        this.limitBatteryTemp = limitBatteryTemp;
    }

    public Long getElecStationId() {
        return elecStationId;
    }

    public void setElecStationId(Long elecStationId) {
        this.elecStationId = elecStationId;
    }

    @Override
    public String getTenantCode() {
        return tenantCode;
    }

    @Override
    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    @Override
    public String getTenantOperatorCode() {
        return tenantOperatorCode;
    }

    @Override
    public void setTenantOperatorCode(String tenantOperatorCode) {
        this.tenantOperatorCode = tenantOperatorCode;
    }

    public String getHlhtOperatorId() {
        return hlhtOperatorId;
    }

    public void setHlhtOperatorId(String hlhtOperatorId) {
        this.hlhtOperatorId = hlhtOperatorId;
    }

    public String getHlhtStationNo() {
        return hlhtStationNo;
    }

    public void setHlhtStationNo(String hlhtStationNo) {
        this.hlhtStationNo = hlhtStationNo;
    }

    public String getStationNo() {
        return stationNo;
    }

    public void setStationNo(String stationNo) {
        this.stationNo = stationNo;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public Integer getStationType() {
        return stationType;
    }

    public void setStationType(Integer stationType) {
        this.stationType = stationType;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public String getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(String provinceId) {
        this.provinceId = provinceId;
    }

    public String getCityId() {
        return cityId;
    }

    public void setCityId(String cityId) {
        this.cityId = cityId;
    }

    public String getAreaId() {
        return areaId;
    }

    public void setAreaId(String areaId) {
        this.areaId = areaId;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getBizType() {
        return bizType;
    }

    public void setBizType(String bizType) {
        this.bizType = bizType;
    }

    public String getIs24h() {
        return Is24h;
    }

    public void setIs24h(String Is24h) {
        this.Is24h = Is24h;
    }

    public String getBizStartTime() {
        return bizStartTime;
    }

    public void setBizStartTime(String bizStartTime) {
        this.bizStartTime = bizStartTime;
    }

    public String getBizEndTime() {
        return bizEndTime;
    }

    public void setBizEndTime(String bizEndTime) {
        this.bizEndTime = bizEndTime;
    }

    public String getElecType() {
        return elecType;
    }

    public void setElecType(String elecType) {
        this.elecType = elecType;
    }

    public String getElecServerDomain() {
        return elecServerDomain;
    }

    public void setElecServerDomain(String elecServerDomain) {
        this.elecServerDomain = elecServerDomain;
    }

    public Integer getElecServerSpliter() {
        return elecServerSpliter;
    }

    public void setElecServerSpliter(Integer elecServerSpliter) {
        this.elecServerSpliter = elecServerSpliter;
    }

    public BigDecimal getLongitude() {
        return longitude;
    }

    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }

    public BigDecimal getLatitude() {
        return latitude;
    }

    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    public BigDecimal getParkingPrice() {
        return parkingPrice;
    }

    public void setParkingPrice(BigDecimal parkingPrice) {
        this.parkingPrice = parkingPrice;
    }

    public String getHint() {
        return hint;
    }

    public void setHint(String hint) {
        this.hint = hint;
    }

    public String getWchint() {
        return wchint;
    }

    public void setWchint(String wchint) {
        this.wchint = wchint;
    }

    public String getStationContract() {
        return stationContract;
    }

    public void setStationContract(String stationContract) {
        this.stationContract = stationContract;
    }

    public String getServicePhone() {
        return servicePhone;
    }

    public void setServicePhone(String servicePhone) {
        this.servicePhone = servicePhone;
    }

    public String getIsFreeParking() {
        return isFreeParking;
    }

    public void setIsFreeParking(String isFreeParking) {
        this.isFreeParking = isFreeParking;
    }

    public String getIsSpecialParking() {
        return isSpecialParking;
    }

    public void setIsSpecialParking(String isSpecialParking) {
        this.isSpecialParking = isSpecialParking;
    }

    public String getParkingRemark() {
        return parkingRemark;
    }

    public void setParkingRemark(String parkingRemark) {
        this.parkingRemark = parkingRemark;
    }

    public String getStationImg1() {
        return stationImg1;
    }

    public void setStationImg1(String stationImg1) {
        this.stationImg1 = stationImg1;
    }

    public String getStationImg2() {
        return stationImg2;
    }

    public void setStationImg2(String stationImg2) {
        this.stationImg2 = stationImg2;
    }

    public String getStationImg3() {
        return stationImg3;
    }

    public void setStationImg3(String stationImg3) {
        this.stationImg3 = stationImg3;
    }

    public String getStationImg4() {
        return stationImg4;
    }

    public void setStationImg4(String stationImg4) {
        this.stationImg4 = stationImg4;
    }

    public String getStationImg5() {
        return stationImg5;
    }

    public void setStationImg5(String stationImg5) {
        this.stationImg5 = stationImg5;
    }

    public String getStationSource() {
        return stationSource;
    }

    public void setStationSource(String stationSource) {
        this.stationSource = stationSource;
    }

    public String getProxyType() {
        return proxyType;
    }

    public void setProxyType(String proxyType) {
        this.proxyType = proxyType;
    }

    public Date getInvoiceProxyTime() {
        return invoiceProxyTime;
    }

    public void setInvoiceProxyTime(Date invoiceProxyTime) {
        this.invoiceProxyTime = invoiceProxyTime;
    }

    public String getInvoiceProxyTenantCode() {
        return invoiceProxyTenantCode;
    }

    public void setInvoiceProxyTenantCode(String invoiceProxyTenantCode) {
        this.invoiceProxyTenantCode = invoiceProxyTenantCode;
    }

    public Date getOperateStartTime() {
        return operateStartTime;
    }

    public void setOperateStartTime(Date operateStartTime) {
        this.operateStartTime = operateStartTime;
    }

    public String getOperateStatus() {
        return operateStatus;
    }

    public void setOperateStatus(String operateStatus) {
        this.operateStatus = operateStatus;
    }


    public String getStationStaus() {
        return stationStaus;
    }

    public void setStationStaus(String stationStaus) {
        this.stationStaus = stationStaus;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public Long getPrinterId() {
        return printerId;
    }

    public void setPrinterId(Long printerId) {
        this.printerId = printerId;
    }

    public String getHlhtStationPriceVersion() {
        return hlhtStationPriceVersion;
    }

    public void setHlhtStationPriceVersion(String hlhtStationPriceVersion) {
        this.hlhtStationPriceVersion = hlhtStationPriceVersion;
    }

    public Integer getLimitSoc() {
        return limitSoc;
    }

    public void setLimitSoc(Integer limitSoc) {
        this.limitSoc = limitSoc;
    }

    @Override
    public String getCreatedBy() {
        return createdBy;
    }

    @Override
    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    @Override
    public Date getCreatedTime() {
        return createdTime;
    }

    @Override
    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    @Override
    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    @Override
    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    @Override
    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    @Override
    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public String getHlhtOperatorName() {
        return hlhtOperatorName;
    }

    public void setHlhtOperatorName(String hlhtOperatorName) {
        this.hlhtOperatorName = hlhtOperatorName;
    }

    public Integer getStationTypeString() {
        return stationTypeString;
    }

    public void setStationTypeString(Integer stationTypeString) {
        this.stationTypeString = stationTypeString;
    }

    public String getSelect() {
        return select;
    }

    public void setSelect(String select) {
        this.select = select;
    }


    public String getShowPlaceType() {
        return showPlaceType;
    }

    public void setShowPlaceType(String showPlaceType) {
        this.showPlaceType = showPlaceType;
    }

    public String getShowPlaceTag() {
        return showPlaceTag;
    }

    public void setShowPlaceTag(String showPlaceTag) {
        this.showPlaceTag = showPlaceTag;
    }

    public Long getTenantCompanyId() {
        return tenantCompanyId;
    }

    public void setTenantCompanyId(Long tenantCompanyId) {
        this.tenantCompanyId = tenantCompanyId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getStationRemark() {
        return stationRemark;
    }

    public void setStationRemark(String stationRemark) {
        this.stationRemark = stationRemark;
    }

    public String getOwnShortName() {
        return ownShortName;
    }

    public void setOwnShortName(String ownShortName) {
        this.ownShortName = ownShortName;
    }

    public String getOwnId() {
        return ownId;
    }

    public void setOwnId(String ownId) {
        this.ownId = ownId;
    }

    public Integer getKwF() {
        return kwF;
    }

    public void setKwF(Integer kwF) {
        this.kwF = kwF;
    }

    public Integer getKwA() {
        return kwA;
    }

    public void setKwA(Integer kwA) {
        this.kwA = kwA;
    }

    public Integer getKwB() {
        return kwB;
    }

    public void setKwB(Integer kwB) {
        this.kwB = kwB;
    }

    public Integer getKwC() {
        return kwC;
    }

    public void setKwC(Integer kwC) {
        this.kwC = kwC;
    }

    public Integer getKwG() {
        return kwG;
    }

    public void setKwG(Integer kwG) {
        this.kwG = kwG;
    }

    public Integer getKwD() {
        return kwD;
    }

    public void setKwD(Integer kwD) {
        this.kwD = kwD;
    }

    public Integer getKwE() {
        return kwE;
    }

    public void setKwE(Integer kwE) {
        this.kwE = kwE;
    }

    //public Integer getKwH() {
    //    return kwH;
    //}
    //
    //public void setKwH(Integer kwH) {
    //    this.kwH = kwH;
    //}

    public Integer getTotalPileNum() {
        return totalPileNum;
    }

    public void setTotalPileNum(Integer totalPileNum) {
        this.totalPileNum = totalPileNum;
    }

    public Integer getTotalPower() {
        return totalPower;
    }

    public void setTotalPower(Integer totalPower) {
        this.totalPower = totalPower;
    }

    public Integer getTotalGunNum() {
        return totalGunNum;
    }

    public void setTotalGunNum(Integer totalGunNum) {
        this.totalGunNum = totalGunNum;
    }

    public String getLabelName() {
        return labelName;
    }

    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public String getOperatorType() {
        return operatorType;
    }

    public void setOperatorType(String operatorType) {
        this.operatorType = operatorType;
    }

    public Integer getStationStar() {
        return stationStar;
    }

    public void setStationStar(Integer stationStar) {
        this.stationStar = stationStar;
    }
}